Error Tracking এবং Logging একটি গুরুত্বপূর্ণ অংশ যেকোনো অ্যাপ্লিকেশনের জন্য, কারণ এটি সমস্যা চিহ্নিত করতে এবং ডিবাগিং প্রক্রিয়াকে সহজ করে তোলে। CodeIgniter এ এর জন্য একটি শক্তিশালী Logging সিস্টেম রয়েছে, যা ডেভেলপারদের অ্যাপ্লিকেশনের ত্রুটিগুলো লগ ফাইলের মাধ্যমে ট্র্যাক করতে সহায়তা করে। এতে ডেটা নিরাপত্তা বজায় রেখে বিভিন্ন ধরনের লগ তৈরি করা যায়, যেমন: Error logs, Debug logs, এবং Informational logs।
CodeIgniter ফ্রেমওয়ার্কে লগ ফাইল ব্যবহার করে Error Tracking করতে নিচের পদ্ধতিগুলি অনুসরণ করা যায়।
CodeIgniter এ লোগিং সিস্টেমের জন্য প্রধান কনফিগারেশন ফাইল হলো application/config/config.php
।
application/config/config.php
ফাইলটি খুলুন এবং নিচের কনফিগারেশন সেট করুন:
$config['log_threshold'] = 4; // লোগিং স্তর
$config['log_path'] = ''; // লগ ফাইলের পাথ (ডিফল্ট: application/logs)
$config['log_file_extension'] = 'log'; // লগ ফাইল এক্সটেনশন
$config['log_file_permissions'] = 0644; // ফাইলের পারমিশন
$config['log_date_format'] = 'Y-m-d H:i:s'; // লগ তারিখের ফরম্যাট
log_threshold
সেটিংlog_threshold বিভিন্ন স্তরের লগিং নিয়ন্ত্রণ করে:
CodeIgniter এর log_message() ফাংশনটি ব্যবহার করে বিভিন্ন ধরনের লগ তৈরি করা যায়। এটি error
, debug
, info
এবং alert
ধরনের লগ তৈরি করতে সক্ষম।
log_message('error', 'This is an error message!');
'error'
হলো লগের স্তর এবং 'This is an error message!'
হলো লগ বার্তা।log_message('debug', 'This is a debug message!');
log_message('info', 'This is an informational message!');
লগ ফাইলগুলি ডিফল্টভাবে application/logs
ডিরেক্টরিতে সংরক্ষণ করা হয়। তবে, আপনি log_path
কনফিগারেশন সেটিংয়ের মাধ্যমে লগ ফাইলের অবস্থান পরিবর্তন করতে পারেন।
$config['log_path'] = '/var/logs/codeigniter/';
লগ ফাইলের নাম সাধারণত log-YYYY-MM-DD.php ফরম্যাটে হয়, যেখানে YYYY-MM-DD লগের তারিখ। আপনি যদি কাস্টম নাম ব্যবহার করতে চান, তবে log_file_extension সেটিং ব্যবহার করতে পারেন।
ধরা যাক, একটি UserController তৈরি করতে চান যা ব্যবহারকারীর তথ্য দেখাবে এবং যদি কোনো ত্রুটি ঘটে, তাহলে সেটি লগ করবে।
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class UserController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('UserModel');
}
public function get_user_data($id) {
try {
// ডেটা সংগ্রহ
$user = $this->UserModel->get_user_by_id($id);
// ডেটা না থাকলে error log
if (!$user) {
log_message('error', 'User with ID ' . $id . ' not found.');
show_404(); // 404 পেজ দেখান
}
// ডেটা শো
$this->load->view('user_view', ['user' => $user]);
} catch (Exception $e) {
log_message('error', 'Error occurred: ' . $e->getMessage());
show_error('An error occurred while fetching user data.');
}
}
}
log_message('error', ...)
ব্যবহার করা হয়েছে যখন ডেটা পাওয়া যায় না অথবা অন্য কোনো ত্রুটি ঘটে।show_error()
ব্যবহার করা হয়েছে ত্রুটি বার্তা ব্যবহারকারীকে দেখানোর জন্য।<?php
class UserModel extends CI_Model {
public function get_user_by_id($id) {
$query = $this->db->get_where('users', ['id' => $id]);
if ($query->num_rows() == 0) {
log_message('error', 'User with ID ' . $id . ' not found in database.');
return false; // User not found
}
return $query->row_array();
}
}
CodeIgniter এ Logging এবং Error Tracking সিস্টেম ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের ত্রুটিগুলো সঠিকভাবে ট্র্যাক করতে পারেন এবং দ্রুত সমাধান পেতে পারেন। এটি একটি গুরুত্বপূর্ণ টুল যা ডেভেলপমেন্ট এবং মেইন্টেনেন্সকে অনেক সহজ করে তোলে।
Read more